//通话套餐类
public class CallPackage extends AbstractPackage implements CallService {


    private int messageNumber;                                               //成员变量：短信条数

    public CallPackage(int monthlyCost, int phonePackage, int messageNumber) {
        // 继承抽象套餐类
        super(monthlyCost, phonePackage);

        setMessageNumber(messageNumber);                                      // 设置短信
    }

    //提供公有的get和set方法
    public int getMessageNumber() {
        return messageNumber;
    }

    public void setMessageNumber(int messageNumber) {
        this.messageNumber = messageNumber;
    }
    // 重写抽象套餐类，打印套餐信息
    @Override
    public void showInfo() {
        System.out.println("通话套餐：时长包" + getPhonePackage() + "分钟;每月资费" + getMonthlyCost() + "元/分钟;短信" + getMessageNumber() + "条");
    }

    @Override
    // 重写通话服务接口方法
    public void server(int number, PhoneCard phoneCard) {
        // 消费金额=通话数量*资费
        int consumeValue = number * getMonthlyCost();
        // 手机余额减消费
        phoneCard.setAccountBalance(phoneCard.getAccountBalance() - consumeValue);
        // 添加通话消费时长
        phoneCard.addConsume(consumeValue, number, 0);
        // 打印手机卡当前消费信息
        phoneCard.showInfo();
    }
}
